package Week5;

import java.util.Scanner;

public class Day29 {
}

//牛客:排序子序列
class Main11 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] arr = new int[n];
        for(int i = 0; i < n; i++){
            arr[i] = in.nextInt();
        }

        int ret = 0 , i = 0;
        while(i < n){
            if(i + 1 == n){
                ret++;
                break;
            }

            if(arr[i] > arr[i + 1]){
                while(i + 1 < n && arr[i] >= arr[i + 1]) i++;
                ret++;
            }else if(arr[i] < arr[i + 1]){
                while(i + 1 < n && arr[i] <= arr[i + 1]) i++;
                ret++;
            }else{
                while(i + 1 < n && arr[i] == arr[i + 1]) i++;
            }
            i++;
        }
        System.out.println(ret);
    }
}

//牛客:消减整数
class Main12 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int t = in.nextInt();
        while(t-- != 0){
            int h = in.nextInt();
            int a = 1 , ret = 0;
            while(h != 0){
                h -= a;
                ret++;
                //如果想要翻倍减，就需要剩下的数是a的倍数才行
                if(h % (a * 2) == 0){
                    a *= 2;
                }
            }
            System.out.println(ret);
        }
    }
}

//牛客:NC164 最长上升子序列(二)
class Solution4 {
    /**
     * 代码中的类名、方法名、参数名已经指定，请勿修改，直接返回方法规定的值即可
     *
     * 该数组最长严格上升子序列的长度
     * @param a int整型一维数组 给定的数组
     * @return int整型
     */
    public int LIS (int[] a) {
        // write code here
        int n = a.length;
        //创建一个dp表，表示最长递增子序列的对应位置的最小值
        int[] dp = new int[n + 1];
        int pos = 0;
        for(int x : a){
            //如果递增就放入后面
            if(pos == 0 || dp[pos] < x){
                dp[++pos] = x;
            }else{
                //二分查找，更新对应位置的最小值
                int l = 1 , r = pos;
                while(l < r){
                    int mid = (l + r) / 2;
                    if(dp[mid] >= x) r = mid;
                    else l = mid + 1;
                }
                dp[l] = x;
            }
        }
        return pos;
    }
}